//************************************************************************
// author	:	vera												
// date		:	2011/4/3 19:58 					                 
//************************************************************************

#ifndef SL_CONFIG_H_
#define SL_CONFIG_H_
#include "Export.h"
// disable the warning
#define  SL_DIABLE_MSVC_WARNINGS 1
#if defined(_MSC_VER) && defined(SL_DIABLE_MSVC_WARNINGS)

	#pragma warning( disable : 4244 )
	#pragma warning( disable : 4251 )
	#pragma warning( disable : 4275 )
	#pragma warning( disable : 4512 )
	#pragma warning( disable : 4267 )
	#pragma warning( disable : 4702 )
	#pragma warning( disable : 4511 )

#endif


// set up define for whether member templates are support by vs compilers

#ifdef _MSC_VER
	#if (_MSC_VER >= 1300)
		# define __STL_MEMBER_TEMPLATES
	#endif
#endif

#ifndef NULL
	#ifdef __cplusplus
		#define NULL 0 
	#else
		#define NULL ((void *)0)
	#endif
#endif

// define the std
#include <iostream>
#include <algorithm>
#include <vector>
#include <map>
#include <math.h>

// windows 
#include <assert.h>

// type the base type of value
typedef char				s8;
typedef unsigned char		u8;
typedef signed short		s16;
typedef unsigned short		u16;
typedef signed int			s32;
typedef unsigned int		u32;
typedef signed long			sl32;
typedef unsigned long		ul32;
typedef signed __int64		s64;
typedef unsigned __int64	u64;

typedef const char			cchar;
typedef const wchar_t		cwchar;

#define INVALID_ID			0xffffffff

#define MAX_U8				0xff
#define MAX_U16				0xffff
#define MAX_U32				0xffffffff
#define MAX_U64				0xffffffffffffffff

#define MAX_S8				0x7f

#define	FLT_MIN				1.175494351e-38F
#define FLT_MAX				3.402823466e+38F
#define TOLERANCE			1e-06f

#endif